home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / HAMRADIO / KAM401.ZIP / KAM-SET.PAS < prev    next >
Pascal/Delphi Source File  |  1989-08-26  |  17KB  |  666 lines

  1. procedure set_attributes;
  2. begin
  3.    xmt_attrib    := b_clr[0] SHL 4 + f_clr[0];
  4.    rcv_attrib    := b_clr[1] SHL 4 + f_clr[1];
  5.    status_attrib := b_clr[2] SHL 4 + f_clr[2];
  6.    prompt_attrib := b_clr[3] SHL 4 + f_clr[3];
  7.    aux_attrib    := b_clr[4] SHL 4 + f_clr[4];
  8.    help_attrib   := b_clr[5] SHL 4 + f_clr[5];
  9. end;
  10.  
  11. procedure mod_image;
  12. var i : integer;
  13. begin
  14.    set_attributes;
  15.    for i := 0 to 1999 do
  16.    begin
  17.       help_scr[i].a := help_attrib;
  18.       qsig_scr[i].a := help_attrib;
  19.       rst_scr[i].a  := help_attrib;
  20.    end;
  21.    for i := 0 to 79 do image[i].a := status_attrib;
  22.    for i := 80*(out_start_line-1) to 80*out_end_line - 1 do
  23.      image[i].a := xmt_attrib;
  24.    for i := 80*(inp_start_line-1) to 80*inp_end_line - 1 do
  25.      image[i].a := rcv_attrib;
  26.    for i := 1840 to 1999 do image[i].a := aux_attrib;
  27.    lead_attr := 80*(out_start_line - 1) - 1;
  28. end;
  29.  
  30. procedure load_init(file_name: file_type);
  31. var init_file : text;
  32.     dummy : string[20];
  33.     flag : integer;
  34. begin
  35.   assign(init_file, file_name);
  36.   {$I-}
  37.   reset(init_file);
  38.   if (IOresult = 0) then
  39.     begin
  40.       read(init_file,dummy); readln(init_file,   b_clr[0]);
  41.       read(init_file,dummy); readln(init_file,   f_clr[0]);
  42.       read(init_file,dummy); readln(init_file,   b_clr[1]);
  43.       read(init_file,dummy); readln(init_file,   f_clr[1]);
  44.       read(init_file,dummy); readln(init_file,   b_clr[2]);
  45.       read(init_file,dummy); readln(init_file,   f_clr[2]);
  46.       read(init_file,dummy); readln(init_file,   b_clr[3]);
  47.       read(init_file,dummy); readln(init_file,   f_clr[3]);
  48.       read(init_file,dummy); readln(init_file,   b_clr[4]);
  49.       read(init_file,dummy); readln(init_file,   f_clr[4]);
  50.       read(init_file,dummy); readln(init_file,   b_clr[5]);
  51.       read(init_file,dummy); readln(init_file,   f_clr[5]);
  52.       read(init_file,dummy); readln(init_file,   status_line);
  53.       read(init_file,dummy); readln(init_file,   inp_start_line);
  54.       read(init_file,dummy); readln(init_file,   inp_end_line);
  55.       read(init_file,dummy); readln(init_file,   aux_line);
  56.       read(init_file,dummy); readln(init_file,   out_start_line);
  57.       read(init_file,dummy); readln(init_file,   out_end_line);
  58.       read(init_file,dummy); readln(init_file,   xmt_port);
  59.       read(init_file,dummy); readln(init_file,   kam_baud_rate);
  60.       read(init_file,dummy); readln(init_file,   packet_mark);
  61.       read(init_file,dummy); readln(init_file,   packet_space);
  62.       read(init_file,dummy); readln(init_file,   int_wpm);
  63.       read(init_file,dummy); readln(init_file,   cw_off_delay);
  64.       read(init_file,dummy); readln(init_file,   xmt_on_delay);
  65.       read(init_file,dummy); readln(init_file,   xmt_off_delay);
  66.       read(init_file,dummy); readln(init_file,   time_zone);
  67.       read(init_file,dummy); readln(init_file,   msg_file_0);
  68.       read(init_file,dummy); readln(init_file,   kam_log_file);
  69.       read(init_file,dummy); readln(init_file,   SW_HF);
  70.       read(init_file,dummy); readln(init_file,   SW_VHF);
  71.       close(init_file);
  72.     end;
  73. end;
  74.  
  75. procedure load_config;
  76. var file_name : file_type;
  77.     i : integer;
  78. begin
  79.   halt_xmt;
  80.   save_screen;
  81.   aux_color;
  82.   clrscr;
  83.   file_name := 'KAM.CFG';
  84.   Set_PickWindow_To(10,5,25,22,SingleLine,'Files');
  85.   SayGet(20,aux_line,'Config File (or ?) ',file_name,_S,24,1);
  86.   WatchKeys := ['?'];
  87.   ReadGets;
  88.   if LastKey = '?' then file_name := PickFile('*.CFG');
  89.   load_init(file_name);
  90.   set_date_time;
  91.   mod_image;
  92. end;
  93.  
  94. procedure get_init;
  95. var i : integer;
  96.     imagefile : file of screen;
  97.     anykey : char;
  98. begin
  99.  
  100.   b_clr[0] := clr_xmt_b;   f_clr[0] := clr_xmt_f;
  101.   b_clr[1] := clr_rcv_b;   f_clr[1] := clr_rcv_f;
  102.   b_clr[2] := clr_sts_b;   f_clr[2] := clr_sts_f;
  103.   b_clr[3] := clr_prm_b;   f_clr[3] := clr_prm_f;
  104.   b_clr[4] := clr_aux_b;   f_clr[4] := clr_aux_f;
  105.   b_clr[5] := clr_hlp_b;   f_clr[5] := clr_hlp_f;
  106.   status_line :=             17;
  107.   inp_start_line :=          1;
  108.   inp_end_line :=            16;
  109.   aux_line :=                24;
  110.   out_start_line :=          18;
  111.   out_end_line  :=           23;
  112.   xmt_port    :=             1;
  113.   kam_baud_rate   :=         1200;
  114.   packet_mark :=             '1600';
  115.   packet_space :=            '1800';
  116.   int_wpm   :=               nominal_xmt_wpm;
  117.   cw_off_delay :=            2;
  118.   xmt_on_delay :=            5;
  119.   xmt_off_delay :=           50;
  120.   time_zone :=               nominal_time_zone;
  121.   msg_file_0 :=              nominal_msg_file;
  122.   kam_log_file :=            'HAMLOG';
  123.   SW_HF        :=            '$';
  124.   SW_VHF       :=            '%';
  125.  
  126.   load_init('KAM.CFG');
  127.  
  128.   str(int_wpm,xmt_wpm);
  129.  
  130.   if (msg_file_0 <> 'NIL') then
  131.   begin
  132.     msg_file_name := msg_file_0;
  133.     msg_load;
  134.   end
  135.   else
  136.   begin
  137.     msg_file_name := '';
  138.     for i := 0 to 9 do msg[i] := '';
  139.   end;
  140.   assign(imagefile,'KAM.IMG');
  141.   {$I-}
  142.   ReSet(imagefile);
  143.   if (IOresult = 0)
  144.   then
  145.     begin
  146.       Read(imagefile, help_scr);
  147.       Read(imagefile, qsig_scr);
  148.       Read(imagefile, rst_scr);
  149.       Read(imagefile, param_scr);
  150.       Close(imagefile);
  151.       mod_image;
  152.     end
  153.   else
  154.     begin
  155.       textcolor(15);
  156.       textbackground(0);
  157.       clrscr;
  158.       writeln('File KAM.IMG must be on default disk & in default directory.');
  159.       delay (5000);
  160.       halt;
  161.     end;
  162. end;
  163.  
  164. procedure save_init;
  165. var init_file : text;
  166.     init_name : file_type;
  167.     flag : integer;
  168. begin
  169.   init_name := 'KAM.CFG';
  170.   Set_PickWindow_To(10,5,25,22,SingleLine,'Files');
  171.   SayGet(20,aux_line,'Config File (or ?) ',init_name,_S,24,1);
  172.   WatchKeys := ['?'];
  173.   ReadGets;
  174.   if LastKey = '?' then init_name := PickFile('*.*');
  175.   gotoxy(5,24); write('                                                     ');
  176.   gotoxy(5,24); write('Writing File ',init_name);
  177.   assign(init_file,init_name);
  178.   {$I-}
  179.   rewrite(init_file);
  180.   if (IOresult = 0) then
  181.     begin
  182.       write(init_file,'Xmt background .....');
  183.       writeln(init_file,b_clr[0]:5);
  184.       write(init_file,'Xmt foreground .....');
  185.       writeln(init_file,f_clr[0]:5);
  186.       write(init_file,'Rcv background .....');
  187.       writeln(init_file,b_clr[1]:5);
  188.       write(init_file,'Rcv foreground .....');
  189.       writeln(init_file,f_clr[1]:5);
  190.       write(init_file,'Status background ..');
  191.       writeln(init_file,b_clr[2]:5);
  192.       write(init_file,'Status foreground ..');
  193.       writeln(init_file,f_clr[2]:5);
  194.       write(init_file,'Prompt background ..');
  195.       writeln(init_file,b_clr[3]:5);
  196.       write(init_file,'Prompt foreground ..');
  197.       writeln(init_file,f_clr[3]:5);
  198.       write(init_file,'Aux background .....');
  199.       writeln(init_file,b_clr[4]:5);
  200.       write(init_file,'Aux foreground .....');
  201.       writeln(init_file,f_clr[4]:5);
  202.       write(init_file,'Help background ....');
  203.       writeln(init_file,b_clr[5]:5);
  204.       write(init_file,'Help foreground ....');
  205.       writeln(init_file,f_clr[5]:5);
  206.       write(init_file,'Status_line ........');
  207.       writeln(init_file,status_line:5);
  208.       write(init_file,'Rcv_start_line .....');
  209.       writeln(init_file,inp_start_line:5);
  210.       write(init_file,'Rcv_end_line .......');
  211.       writeln(init_file,inp_end_line:5);
  212.       write(init_file,'Aux_line ...........');
  213.       writeln(init_file,aux_line:5);
  214.       write(init_file,'Xmt_start_line .....');
  215.       writeln(init_file,out_start_line:5);
  216.       write(init_file,'Xmt_end_line .......');
  217.       writeln(init_file,out_end_line:5);
  218.       write(init_file,'Transmit port ......');
  219.       writeln(init_file,xmt_port:5);
  220.       write(init_file,'Interface baud rate.');
  221.       writeln(init_file,kam_baud_rate:5);
  222.       write(init_file,'Packet MARK freq....');
  223.       writeln(init_file,packet_mark);
  224.       write(init_file,'Packet SPACE freq...');
  225.       writeln(init_file,packet_space);
  226.       write(init_file,'CW Xmt WPM .........');
  227.       writeln(init_file,int_wpm:5);
  228.       write(init_file,'CW turn-off delay...');
  229.       writeln(init_file,cw_off_delay:5);;
  230.       write(init_file,'Xmt turn-on delay...');
  231.       writeln(init_file,xmt_on_delay:5);
  232.       write(init_file,'Xmt turn-off delay..');
  233.       writeln(init_file,xmt_off_delay:5);
  234.       write(init_file,'Time Zone ..........');
  235.       writeln(init_file,time_zone:5);
  236.       write(init_file,'Initial msg file ...');
  237.       writeln(init_file,msg_file_0);
  238.       write(init_file,'Log Path/File.......');
  239.       writeln(init_file,kam_log_file);
  240.       write(init_file,'HF switch char .....');
  241.       writeln(init_file,SW_HF);
  242.       write(init_file,'VHF switch char ....');
  243.       writeln(init_file,SW_VHF);
  244.     end;
  245.   close(init_file);
  246. end;
  247.  
  248. procedure set_color(i:integer);
  249. var vidpos, attrbyte, n : integer;
  250. begin
  251.     case i of
  252.       0 : vidpos := 332;
  253.       1 : vidpos := 492;
  254.       2 : vidpos := 652;
  255.       3 : vidpos := 812;
  256.       4 : vidpos := 972;
  257.       5 : vidpos := 1132;
  258.     end;
  259.     attrbyte := b_clr[i] SHL 4 + f_clr[i];
  260.     for i := 0 to 8 do
  261.       video^[vidpos + i].a := attrbyte;
  262. end;
  263.  
  264. procedure set_new_color(which, clrkey : char);
  265. var clr : integer;
  266. begin
  267.   clr := ord(which)-ord('A');
  268.   case clrkey of
  269.     #72  : b_clr[clr] := (b_clr[clr] + 1) MOD 8;
  270.     #80  : begin
  271.              b_clr[clr] := b_clr[clr] - 1;
  272.              if (b_clr[clr] < 0) then b_clr[clr] := 7;
  273.            end;
  274.     #77  : f_clr[clr] := (f_clr[clr] + 1) MOD 16;
  275.     #75  : begin
  276.              f_clr[clr] := f_clr[clr] - 1;
  277.              if (f_clr[clr] < 0) then f_clr[clr] := 15;
  278.            end;
  279.   end;
  280.   set_color(clr);
  281. end;
  282.  
  283. procedure new_color(which : char);
  284. var clrkey: char;
  285. begin
  286.   write('  ',#17,' ',#16,' forgnd,  ',#30,' ',#31,' bckgnd ..');
  287.   repeat
  288.     clrkey := readkey;
  289.     if (clrkey = #0) then
  290.     begin
  291.       clrkey := readkey;
  292.       set_new_color(which,clrkey);
  293.     end;
  294.   until clrkey = #27;
  295. end;
  296.  
  297. procedure sho_xmt_space;
  298. begin
  299.   gotoxy(36,5); write(out_start_line:2);
  300.   gotoxy(44,5); write(out_end_line:2);
  301. end;
  302.  
  303.  
  304. procedure sho_rcv_space;
  305. begin
  306.   gotoxy(36,7); write(inp_start_line:2);
  307.   gotoxy(44,7); write(inp_end_line:2);
  308. end;
  309.  
  310. procedure sho_status_line;
  311. begin
  312.   gotoxy(36,9); write(status_line:2);
  313. end;
  314.  
  315. procedure sho_aux_line;
  316. begin
  317.   gotoxy(36,13); write(aux_line:2);
  318. end;
  319.  
  320. procedure sho_comms_port;
  321. begin
  322.   gotoxy(74,5);
  323.   case xmt_port of
  324.     1 : write('COM1');
  325.     2 : write('COM2');
  326.   end;
  327. end;
  328.  
  329. procedure sho_comms_baud_rate;
  330. begin
  331.   gotoxy(74,7);
  332.   write(kam_baud_rate:4);
  333. end;
  334.  
  335. procedure sho_CW_WPM;
  336. begin
  337.   gotoxy(74,9);
  338.   write(int_wpm : 2);
  339. end;
  340.  
  341. procedure sho_CW_off_delay;
  342. begin
  343.   gotoxy(74,11);
  344.   write(cw_off_delay : 2);
  345. end;
  346.  
  347. procedure sho_RTTY_on_delay;
  348. begin
  349.   gotoxy(74,13);
  350.   write(xmt_on_delay:2);
  351. end;
  352.  
  353. procedure sho_RTTY_off_delay;
  354. begin
  355.   gotoxy(74,15);
  356.   write(xmt_off_delay:2);
  357. end;
  358.  
  359. procedure sho_time_zone;
  360. begin
  361.   gotoxy(26,17);
  362.   write(time_zone:3);
  363. end;
  364.  
  365. procedure sho_default_msg_file;
  366. begin
  367.   gotoxy(58,17);
  368.   write(msg_file_0);
  369. end;
  370.  
  371. procedure sho_kam_log_file;
  372. begin
  373.   gotoxy(43,19);
  374.   write('                                ');
  375.   gotoxy(43,19);
  376.   write(kam_log_file);
  377. end;
  378.  
  379. procedure param_screen;
  380. var i : integer;
  381. begin
  382.   DisplayPage(@param_scr);
  383.   for i := 0 to 5 do
  384.     set_color(i);
  385.   textcolor(15);
  386.   textbackground(0);
  387.   sho_xmt_space;
  388.   sho_rcv_space;
  389.   sho_status_line;
  390.   sho_aux_line;
  391.   sho_comms_port;
  392.   sho_comms_baud_rate;
  393.   sho_CW_WPM;
  394.   sho_CW_off_delay;
  395.   sho_RTTY_on_delay;
  396.   sho_RTTY_off_delay;
  397.   sho_time_zone;
  398.   sho_default_msg_file;
  399.   sho_kam_log_file;
  400. end;
  401.  
  402. procedure clear_select_line;
  403. begin
  404.   gotoxy(5,21);
  405.   Write('                                                                       ');
  406.   gotoxy(5,21);
  407. end;
  408.  
  409. function select: char;
  410. var ok : boolean;
  411. begin
  412.   clear_select_line;
  413.   write('<ESC> done ... Select Parameter...');
  414.   repeat
  415.     repeat
  416.       key := readkey;
  417.     until key in [#0,#27,'A'..'U','a'..'v'];
  418.     if keypressed
  419.     then
  420.       begin
  421.         key := readkey;
  422.         ok := FALSE;
  423.       end
  424.     else
  425.       ok := TRUE;
  426.   until ok;
  427.   if key <> #27 then write(UpCase(key));
  428.   select := UpCase(key);
  429. end;
  430.  
  431. procedure xmt_space;
  432. begin
  433.   repeat
  434.     {$I-}
  435.     clear_select_line;
  436.     write('Transmit start line : ');
  437.     read(out_start_line);
  438.   until (IOresult = 0);
  439.   sho_xmt_space;
  440.   repeat
  441.     {$I-}
  442.     clear_select_line;
  443.     write('Transmit end line : ');
  444.     read(out_end_line);
  445.   until (IOresult = 0);
  446.   sho_xmt_space;
  447. end;
  448.  
  449. procedure rcv_space;
  450. begin
  451.   repeat
  452.     {$I-}
  453.     clear_select_line;
  454.     write('Receive start line : ');
  455.     read(inp_start_line);
  456.   until (IOresult = 0);
  457.   sho_rcv_space;
  458.   repeat
  459.     {$I-}
  460.     clear_select_line;
  461.     write('Receive end line : ');
  462.     read(inp_end_line);
  463.   until (IOresult = 0);
  464.   sho_rcv_space;
  465. end;
  466.  
  467. procedure  status_space;
  468. begin
  469.   repeat
  470.     {$I-}
  471.     clear_select_line;
  472.     write('Status line : ');
  473.     read(status_line);
  474.   until (IOresult = 0);
  475.   sho_status_line;
  476. end;
  477.  
  478. procedure  aux_space;
  479. begin
  480.   repeat
  481.     {$I-}
  482.     clear_select_line;
  483.     write('Auxiliary line : ');
  484.     read(aux_line);
  485.   until (IOresult = 0);
  486.   sho_aux_line;
  487. end;
  488.  
  489. procedure set_comms_port;
  490. begin
  491.   case xmt_port of
  492.     1 : xmt_port := 2;
  493.     2 : xmt_port := 1;
  494.   end;
  495.   sho_comms_port;
  496. end;
  497.  
  498. procedure set_comms_baud_rate;
  499. begin
  500.   case kam_baud_rate of
  501.     110 : kam_baud_rate := 150;
  502.     150 : kam_baud_rate := 300;
  503.     300 : kam_baud_rate := 600;
  504.     600 : kam_baud_rate := 1200;
  505.     1200 : kam_baud_rate := 2400;
  506.     2400 : kam_baud_rate := 4800;
  507.     4800 : kam_baud_rate := 9600;
  508.     9600 : kam_baud_rate := 110;
  509.   end;
  510.   sho_comms_baud_rate;
  511. end;
  512.  
  513. procedure set_CW_WPM;
  514. begin
  515.   repeat
  516.     {$I-}
  517.     clear_select_line;
  518.     write('Initial CW WPM [5..80] : ');
  519.     readln(int_wpm);
  520.   until (IOresult = 0) AND (int_wpm in [5..80]);
  521.   sho_CW_WPM;
  522. end;
  523.  
  524. procedure set_CW_off_delay;
  525. begin
  526.   repeat
  527.     {$I-}
  528.     clear_select_line;
  529.     write('CW automatic turn-off delay (1/10s of secs) [1..25] : ');
  530.     readln(cw_off_delay);
  531.   until (IOresult = 0) AND (cw_off_delay in [1..25]);
  532.   sho_CW_off_delay;
  533. end;
  534.  
  535. procedure set_RTTY_on_delay;
  536. begin
  537.   repeat
  538.     {$I-}
  539.     clear_select_line;
  540.     write('RTTY automatic turn-on delay (1/10s of secs) [1..10] : ');
  541.     readln(xmt_on_delay);
  542.   until (IOresult = 0) AND (xmt_on_delay in [1..10]);
  543.   sho_RTTY_on_delay;
  544. end;
  545.  
  546. procedure set_RTTY_off_delay;
  547. begin
  548.   repeat
  549.     {$I-}
  550.     clear_select_line;
  551.     write('RTTY automatic turn-off delay (1/10s of secs) [1..50] : ');
  552.     readln(xmt_off_delay);
  553.   until (IOresult = 0) AND (xmt_off_delay in [1..50]);
  554.   sho_RTTY_off_delay;
  555. end;
  556.  
  557. procedure set_time_zone;
  558. begin
  559.   repeat
  560.     {$I-}
  561.     clear_select_line;
  562.     write('Local Time Zone [-11..+11] : ');
  563.     readln(time_zone);
  564.   until (IOresult = 0) AND (abs(time_zone) in [ 0..11 ]);
  565.   sho_time_zone;
  566. end;
  567.  
  568. procedure set_default_msg_file;
  569. begin
  570.   clear_select_line;
  571.   write('On program startup read line buffers from : ');
  572.   readln(msg_file_0);
  573.   sho_default_msg_file;
  574. end;
  575.  
  576. procedure set_default_kam_log;
  577. begin
  578.   clear_select_line;
  579.   write('Default LOG File : ');
  580.   readln(kam_log_file);
  581.   sho_kam_log_file;
  582. end;
  583.  
  584. procedure set_parameters;
  585. var param : char;
  586. begin
  587.   halt_xmt;
  588.   save_screen;
  589.   param_screen;
  590.   repeat
  591.     param := select;
  592.     case param of
  593.       'A'..'F' : new_color(param);
  594.       'G'      : xmt_space;
  595.       'H'      : rcv_space;
  596.       'I'      : status_space;
  597.       'J'      : aux_space;
  598.       'K'      : set_comms_port;
  599.       'L'      : set_comms_baud_rate;
  600.       'M'      : set_CW_WPM;
  601.       'N'      : set_CW_off_delay;
  602.       'O'      : set_RTTY_on_delay;
  603.       'P'      : set_RTTY_off_delay;
  604.       'Q'      : set_time_zone;
  605.       'R'      : set_default_msg_file;
  606.       'S'      : set_default_kam_log;
  607.     end;
  608.   until param = #27;
  609.   clear_select_line;
  610.   write('Save to Disk <Y/N> ...');
  611.   repeat key := readkey until key in ['y','Y','n','N'];
  612.   if key in ['y','Y'] then save_init;
  613.   set_date_time;
  614.   mod_image;
  615.   restore_screen;
  616.   clear_screen;
  617. end;
  618.  
  619. procedure initialize;
  620. VAR i : integer;
  621.     fillstring : string;
  622. begin
  623.   textcolor(video^[1999].a AND $0F);
  624.   textbackground((video^[1999].a SHR 4) AND $0F);
  625.   viewing_help := FALSE;
  626.   clrscr;
  627.   writeln('======================== KAM-CAR ===========================');
  628.   writeln('Kantronics (tm) All Mode CW/ASCII/RTTY Terminal Program ',version:4);
  629.   writeln('Courtesy: Dave Freese, W1HKJ');
  630.   writeln('           29 N. Ravenwood Drive');
  631.   writeln('           Cape May Court House, NJ 08210');
  632.   writeln('           (609) 624 0076');
  633.   writeln;
  634.   get_init;
  635.   baud := 0;
  636.   shift := 0;
  637.   set_date_time;
  638.   key := null;
  639.   old_time := '     ';
  640.   xmt_ON := FALSE;
  641.   pause_flag := FALSE;
  642.   stop_flag := FALSE;
  643.   quit_flag  := FALSE;
  644.   invert := FALSE;
  645.   capture := FALSE;
  646.   auto_switch := FALSE;
  647.   kbd_buffer[0] := null;
  648.   kbd_buffer[1] := null;
  649.   inp_ptr := 0;
  650.   out_ptr := 0;
  651.   qso_nbr := 0;
  652.   station := '';
  653.   PKCall := '';
  654.   for i := 0 to max_rcv_buffers do
  655.     new(rcv_buffer[i]);
  656.   fillstring := REPLICATE(' ',80);
  657.   for i := 0 to max_rcv_buffers do
  658.     rcv_buffer[i]^ := fillstring;
  659.   init_rcv_buffers;
  660.   init_interface;
  661.   window(1,1,25,80);
  662.   InitializeDataBase;
  663.   WHERE := '';
  664. end;
  665.  
  666.